'use strict';

/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const { router, controller } = app;
  router.get('/', controller.home.index);
  router.get('/user/index', controller.user.index);
  router.get('/user/list', controller.user.show);
  router.get('/user/add', controller.user.add);
  // router.get('/news', controller.news.list);
  // router.get('/news/:id', controller.news.list);
  // restful
  // router.resources('news', '/api/v1/news', controller.v1.news); // app/controller/v1/users.js
  // 正则
  // router.get(/^\/news\/([\w-.]+\/[\w-.]+)$/, controller.news.list);
  //get = ctx.query, post = ctx.body, /:id = ctx.param, 正则 = ctx.param
  // 实用中间件
  // router.get('s', '/news/gzip', app.middleware.gzip(), app.controller.news)
};
/**
 verb - 用户触发动作，支持 get，post 等所有 HTTP 方法，后面会通过示例详细说明。
 router.head - HEAD
 router.options - OPTIONS
 router.get - GET
 router.put - PUT
 router.post - POST
 router.patch - PATCH
 router.delete - DELETE
 router.del - 由于 delete 是一个保留字，所以提供了一个 delete 方法的别名。
 router.redirect - 可以对 URL 进行重定向处理，比如我们最经常使用的可以把用户访问的根目录路由到某个主页。
 router-name 给路由设定一个别名，可以通过 Helper 提供的辅助函数 pathFor 和 urlFor 来生成 URL。(可选)
 path-match - 路由 URL 路径。
 middleware1 - 在 Router 里面可以配置多个 Middleware。(可选)
 controller - 指定路由映射到的具体的 controller 上，controller 可以有两种写法：
 app.controller.user.fetch - 直接指定一个具体的 controller
 'user.fetch' - 可以简写为字符串形式
 */
